<?php

/**
 * @author Paweł Napieracz
 * @version 1.0
 */
class Controller {

    private $uzytkownik = false;
    private $param;

    function __construct() {
        /* Tworzenie obiektu usera! */
        $this->getUzytkownik();
        /* Pobieranie parametrów żądania */
        $this->getParam();
    }

    private function getUzytkownik() {
        if (isset($_SESSION['uzytkownik_id']) &&
                is_numeric($_SESSION['uzytkownik_id'])) {
            $userTab = new AutoDB('uzytkownik');
            $user = $userTab->Select('uzytkownik.id, login, klucz')->
                            Join('cms_grupy_uprawnienia', 'cms_grupy_uprawnienia.id_grupa = uzytkownik.id_grupa','left')->
                            Join('cms_uprawnienia', 'cms_uprawnienia.id = cms_grupy_uprawnienia.id_uprawienia','left')->
                            Where(array('uzytkownik.id' => $_SESSION['uzytkownik_id']))->
                            Run()->AsArray();
            $this->uzytkownik = array('id' => $user[0]['id'],
                'login' => $user[0]['login'], 'uprawienia' => array());
            foreach ($user as $v) {
                $this->uzytkownik['uprawienia'][] = $v['klucz'];
            }
            unset($user);
        }
    }

    private function getParam() {
        if (substr(end(Reg::get('req')), -5, 5) == '.html') {
            $vars = explode(',', substr(end(Reg::get('req')), 0, -5));
            if (count($vars) == 1 && !empty($vars[0]))
                $this->param = array('klucz' => $vars[0]);
            else if (!(count($vars) % 2)) {
                $this->param = array();
                for ($i = 0; $i < count($vars); $i+=2) {
                    $this->param[$vars[$i]] = $vars[$i + 1];
                }
            } else {
                $this->param = null;
            }
        } else {
            $this->param = null;
        }
    }

    public function getController() {
        /* Zwracam kontroler */
        return array(
            'uzytkownik' => $this->uzytkownik,
            'param' => $this->param,
        );
    }

}

?>
